Разделы:

  Главная
  Форум
  Железо
  Программы
  Все Релизы
  Даты Выпуска
  Ссылки
Multiboot кабель своими руками или как заливать ромы на GBA не имея флэш картриджа.

Вступление.
В данной статье я опишу как произвести загрузку небольших ромов(максимум 256 КБайт) на вашем Геймбое не прилагая для этого каких-либо больших усилий. Выполнение данной задачи разбивается на 3 этапа:
1 этап: создание соединительного кабеля между вашим компьютером и GBA.
2 этап: настройка ПК для работы с кабелем и процедура отправки вашего рома на гба.
3 этап: создание ромов корректно выполняющихся по мультибуту.

Немного о multiboote.
Передача программ становится возможной благодаря встроенной функции GBA BIOSа для загрузки и запуска програмного кода даже если картридж не вставлиен. Программа загружается в регистр 2000000h и выше в GBA память и должна содержать информацию о заголовке картриджа также как и нормальный ROM картридж. Для примера: существуют игры которые позволяют играть в режим multiplayer имея всего один картридж(такие как FZero), в нашем случае источником передачи программного кода будет не GBA с картриджем, а компьютер. Передача будет производться по multiboot кабелю.

Этап 1: паяем сам кабель.
Для этого нам потребуется: штекер для GBA с проводом, стандартный LPT коннектор(папа) на 25 входов, мультиметр и паяльник.
Берем штекер для GBA с проводом, выводим провода и прозваниваем с помощью мультиметра какой провод относится к какому входу(на рисунке ниже показан разьём гнезда GBA). Далее припаеваем провода к LPT коннектору как показано на рисунке. После этого всё собираем и окончательно проверяем мультиметром. Провод готов.

Примечание: Контакт GBA(4)-PC(17) не обязателен, он служит для увеличения скорости передачи данных в два раза, всё будет отлично работать и без него.

Этап 2: подключаем, заливаем.
Данный кабель должен работать со всеми операционными системами, но если у вас Windows NT/2000/XP то вам необходимо установить дополнительную утилиту Userport, которая позволит программам беспрепятственно обращаться к указанным вами портам, в данном случае это LPT к которому подсоединён GBA.
Установка Userport:
1. Скачиваем Userport отсюда.
2. Распаковываем во временную папку.
3. Копируем файл UserPort.SYS в папку %WINDIR%\SYSTEM32\DRIVERS
4. Запускаем файл UserPort.EXE, удаляем оттуда все эементы.
5. Заходим в Панель Управления\Система, выбираем закладку Оборудование, Диспетчер устройств, заходим в Порты (COM и LPT) и смотрим свойства LPT порта по которому вы хотите установить соединение. В Свойствах открываем закладку Ресурсы и смотрим значение паметра 'Диапазон ввода/вывода(I/O)', у меня оно равно 0378-037F.
6. Добавляем это значение в UserPort.EXE(в оба поля) и нажимаем кнопку Start.

Далее для отправки ромов нам понадобиться программное обеспечение для PC. Я выбрал программу Xboo Communicator 1.00 т.к. она имеет удобный графический интерфейс и легко настраиваема. Скачиваем, в настройках указываем адрес вашего параллельного порта.

Сейчас нам нужно будет что-нибудь залить на GBA, повторяю что залить можно не любой ром, а только ромы имеющие размер менее 256 Кбайт и подходящие под определённые критерии, которые мы рассмотрим на следующем этапе. Для проверки работы кабеля скачайте этот архив, созданный мной для проверки работы кабеля. В архиве находится файл boot.mb - это и есть проверочный ром и исходники этого рома, но о них позже. boot.mb переименовывать не нужно, он заливается прямо так. После окончания загрузки на экране GBA должна появиться надпись, которая свидетельствует о успешной загрузке.

Этап 3: создание рома.
Те, кто собирается сам создовать ромы и закачивать их с помощью multiboot кабеля могут столкнуться с определёнными проблемами, сейчас я попробую описать их: 1. При компиляции программы лудше её компилировать в файл .mb а не .gba. Хотя разницы практически никакой нет, но когда вы будете проверять ром на VisualBoy Advance то он файлы .mb запускает в multiboot режиме. Иногда бывает файл на эмуляторе отлично работает как .gba, но не работает как .mb - следовательно он не будет работать и на самой консоли.
2. После компиляции рома чтобы избежать ошибки 'probably bad header' при заливке на GBA следует установить заголовок для рома, это легко осуществимо с помощью программки gbafix.
Пример использования:
gbafix boot.mb -t Boot -c BOOT -m 55 -r 22
После использования этой программы проблем с заголовком больше не должно быть.
3. Если программа загружается нормально, но на GBA высвечивается пустой экран, то попробуйте в начало программы в исходный код вставить строчку 'int __gba_multiboot;', по крайней мере у меня без неё ничего не работало.

Ну вот вроде и все особенности по поводу создания рома для multiboot, и помните пишите код как можно чище, т.к. GBA более придирчив чем эмулятор.

И напоследок, фотографии с места действия.




Автор статьи: Voulter

Последние темы:









































Created by Voulter ICQ:243933446 Mail:voulter@list.ru .